package service

import (
	"seat-service/model"
	"seat-service/model/dto"
)

type Dictionary interface {
	// AddDictionaryMaster 添加Master字典数据
	AddDictionaryMaster(dictionary model.Dictionary) error
	// DeleteDictionaryMaster 根据ID删除Master字典数据
	DeleteDictionaryMaster(masterId uint) error
	// BatchDeleteDictionaryMaster 根据ID批量删除Master字典数据
	BatchDeleteDictionaryMaster(masterId ...uint) error
	// UpdateDictionaryMaster 修改Master字典数据
	UpdateDictionaryMaster(dictionary model.Dictionary) error
	// QueryDictionaryMaster 查找Master字典数据
	QueryDictionaryMaster(page, pageSize int) (dto.QueryReturnDto, error)
	// QueryDictionaryMasterByType 查找Master字典数据根据类型名称或者编码
	QueryDictionaryMasterByType(condition string, page, pageSize int) (dto.QueryReturnDto, error)

	// AddDictionarySlave 添加Slave字典数据
	AddDictionarySlave(slave model.DictionarySlave) error
	// DeleteDictionarySlave 根据ID删除Slave字典数据
	DeleteDictionarySlave(SlaveId uint) error
	// BatchDeleteDictionarySlave 根据ID批量删除Slave字典数据
	BatchDeleteDictionarySlave(SlaveId ...uint) error
	// UpdateDictionarySlave 修改Slave字典数据
	UpdateDictionarySlave(dictionary model.DictionarySlave) error
	// QueryDictionarySlave 查找Slave字典数据
	QueryDictionarySlave(page, pageSize, dictionaryId int) (dto.QuerySlaveReturnDto, error)
	// QueryDictionarySlaveByType 查找Slave字典数据根据类型名称或者编码
	QueryDictionarySlaveByType(condition string, page, pageSize, dictionaryId int) (dto.QuerySlaveReturnDto, error)
}
